package notes.java.sjms23.t10_visitor;

//访问者模式 - 测试类
//假设有三角形，圆形，长方形，不同形状有不同的参数，需要计算它们的周长，面积
//三角形，三条边
//长方形，两边
//圆形，半径
public class Client {
    
    public static void main(String[] args) {
        
        ShapeStructure structure = new ShapeStructure();
        // 添加一个三角形
        structure.add(new ShapeTriangle(10, 12, 15));
        // 添加长方形
        structure.add(new ShapeSquare(10, 20));
        // 添加圆形
        structure.add(new ShapeCircle(20));
        
        // 访问者为周长
        structure.accept(new VisitorPerimeter());
        // 访问者为面积
        structure.accept(new VisitorArea());
    }

}
